البرمجة

محددات وعناصر CSS الزائفة

مقدمة

في عالم تطوير الويب، تعد لغة CSS (أو Cascading Style Sheets) واحدة من الركائز الأساسية لتنسيق وتصميم الصفحات الإلكترونية. توفر CSS للمطورين وسيلة مرنة وفعّالة لتحديد المظهر العام للمحتوى على صفحات الويب. من بين الأدوات القوية التي تقدمها CSS، نجد محددات الأصناف الزائفة (Pseudo-classes) والعناصر الزائفة (Pseudo-elements)، اللتين تلعبان دورًا مهمًا في تحسين التحكم في تصميم العناصر داخل الصفحة.

تُستخدم هذه المحددات لتطبيق أنماط معينة على عناصر HTML بناءً على حالة معينة أو في موقع معين داخل المستند، دون الحاجة إلى تعديل الهيكل الأساسي للصفحة أو إضافة عناصر جديدة. لذلك، سنناقش في هذا المقال بشكل موسع عن المحددات الزائفة و العناصر الزائفة في CSS، وتفصيل كيفية استخدامهما بشكل فعال للحصول على تصميمات أكثر ديناميكية وتفاعلًا.

ما هي المحددات الزائفة (Pseudo-classes)؟

المحددات الزائفة هي مكونات في CSS تسمح للمطورين بتحديد حالة معينة لعناصر HTML دون إضافة عناصر إضافية إلى الصفحة. يمكن استخدام المحددات الزائفة لتعريف الأنماط بناءً على التفاعل مع المستخدم، أو بناءً على نوع العنصر أو موقعه ضمن هيكل المستند.

بعض الأمثلة الشائعة على المحددات الزائفة:

  1. :hover:
    هذه المحددة تُستخدم لتطبيق أنماط معينة على عنصر ما عند تمرير مؤشر الفأرة فوقه. على سبيل المثال، يمكن تغيير لون النص عند التمرير عليه:

    css
    a:hover { color: red; }

    عند التمرير فوق الرابط، سيتغير اللون إلى الأحمر.

  2. :focus:
    تُستخدم هذه المحددة عندما يكون العنصر في حالة “التركيز”، مثل الحقل الذي يتم تحديده في نموذج إدخال:

    css
    input:focus { background-color: yellow; }

    في هذه الحالة، سيتغير لون خلفية الحقل إلى اللون الأصفر عندما يصبح الحقل في حالة تركيز.

  3. :nth-child():
    تُستخدم لتحديد الأنماط بناءً على موقع العنصر داخل مجموعة من العناصر. على سبيل المثال، يمكن تغيير لون الخلفية للعناصر الزوجية فقط في قائمة:

    css
    li:nth-child(even) { background-color: lightgray; }

    هذه المحددة تطبق الأنماط على العناصر الزوجية فقط داخل القائمة.

  4. :not():
    يمكن استخدام هذه المحددة لاستبعاد عناصر معينة من الأنماط. على سبيل المثال، إذا أردنا تغيير لون خلفية كل الروابط ما عدا تلك التي تحتوي على فئة معينة:

    css
    a:not(.active) { background-color: lightblue; }

    في هذه الحالة، ستُطبق الأنماط على جميع الروابط التي لا تحتوي على فئة “active”.

  5. :first-child و :last-child:
    تُستخدم هذه المحددات لتطبيق الأنماط على أول وآخر عنصر في مجموعة من العناصر:

    css
    p:first-child { font-weight: bold; } p:last-child { font-style: italic; }

أهمية المحددات الزائفة:

تسمح المحددات الزائفة للمطورين بتحديد أنماط لمجموعة معينة من العناصر بناءً على الحالة أو الموضع دون إضافة أكواد HTML إضافية. هذا يوفر الوقت ويجعل الكود أكثر نظافة وقابلية للصيانة. علاوة على ذلك، تسهم هذه المحددات في تحسين تفاعل المستخدم مع الصفحة من خلال تقديم تغييرات مرئية في الوقت الفعلي، مثل التغيير في الألوان أو الأنماط أثناء التفاعل مع العناصر.

ما هي العناصر الزائفة (Pseudo-elements)؟

العناصر الزائفة في CSS تُستخدم لتحديد جزء معين من العنصر لتطبيق الأنماط عليه، مثل إضافة محتوى قبل أو بعد المحتوى الفعلي للعنصر. تُعتبر هذه الأدوات مفيدة لإضافة تأثيرات بصرية أو محتوى إضافي دون الحاجة لتغيير الهيكل HTML للمستند.

بعض الأمثلة الشائعة على العناصر الزائفة:

  1. ::before:
    تُستخدم لإضافة محتوى قبل محتوى العنصر المحدد. على سبيل المثال، يمكن إضافة رمز إلى بداية كل فقرة:

    css
    p::before { content: "🔹"; padding-right: 5px; }

    سيظهر الرمز 🔹 قبل كل فقرة في الصفحة.

  2. ::after:
    تُستخدم لإضافة محتوى بعد محتوى العنصر المحدد. مثل إضافة رمز بعد كل رابط:

    css
    a::after { content: " ↗"; }

    سيظهر السهم بعد كل رابط في الصفحة، مما يوضح أن الرابط يفتح في نافذة جديدة أو يؤدي إلى صفحة خارجية.

  3. ::first-letter:
    تُستخدم لتنسيق الحرف الأول من العنصر المحدد. يمكن استخدامها لجعل الحرف الأول من كل فقرة يظهر بخط أكبر:

    css
    p::first-letter { font-size: 2em; font-weight: bold; }

    سيظهر أول حرف من كل فقرة بخط أكبر وأكثر وضوحًا.

  4. ::first-line:
    تُستخدم لتطبيق الأنماط على أول سطر من المحتوى داخل العنصر. على سبيل المثال:

    css
    p::first-line { font-style: italic; }

    سيظهر أول سطر من الفقرة بخط مائل.

  5. ::selection:
    تُستخدم لتنسيق النص الذي قام المستخدم بتحديده داخل العنصر. على سبيل المثال:

    css
    ::selection { background-color: yellow; color: black; }

    سيُطبق هذا النمط على النص المحدد من قبل المستخدم، حيث يظهر النص المحدد بخلفية صفراء ولون نص أسود.

أهمية العناصر الزائفة:

توفر العناصر الزائفة طريقة لتخصيص المظهر الداخلي للعناصر بطريقة مرنة وفعّالة دون تعديل الهيكلية الأساسية للصفحة أو إضافة عناصر HTML إضافية. تتيح هذه العناصر للمطورين إضافة تأثيرات بصرية ديناميكية، مثل إضافة محتوى أو تأثيرات إلى النصوص والصور، مما يعزز من تجربة المستخدم. كما أنها تُسهم في تقليل حجم الكود وتقليل الحاجة إلى إضافة عناصر جديدة في HTML.

الاختلافات بين المحددات الزائفة والعناصر الزائفة

على الرغم من أن كلا من المحددات الزائفة والعناصر الزائفة تُستخدم لتحقيق تأثيرات في CSS دون الحاجة لتعديل HTML، هناك بعض الفروق الجوهرية بينهما:

  1. المحددات الزائفة (Pseudo-classes):

    • تُستخدم لتطبيق الأنماط بناءً على حالة العنصر أو تفاعلات المستخدم.

    • على سبيل المثال، :hover، :focus، :nth-child، وغيرها.

    • لا تضيف محتوى جديدًا إلى الصفحة.

  2. العناصر الزائفة (Pseudo-elements):

    • تُستخدم لتطبيق الأنماط على جزء معين من العنصر أو لإضافة محتوى قبل أو بعد العنصر.

    • على سبيل المثال، ::before، ::after، ::first-letter، وغيرها.

    • يمكن أن تضيف محتوى مرئي جديدًا إلى الصفحة دون الحاجة لتعديل HTML.

الخلاصة

تعتبر المحددات الزائفة و العناصر الزائفة من الأدوات الأساسية في CSS التي تمنح المطورين القدرة على التحكم بشكل دقيق في شكل وتفاعل العناصر على صفحات الويب. بفضل هذه الأدوات، يمكن تطبيق تأثيرات أنيقة وديناميكية على العناصر دون الحاجة لتعديل الهيكل HTML، مما يجعل صفحات الويب أكثر تفاعلية وجاذبية للمستخدمين. من خلال فهم كيفية عمل هذه الأدوات واستخدامها بشكل فعال، يمكن للمطورين تحسين تصميم صفحاتهم بشكل كبير وتقديم تجربة مستخدم سلسة وممتعة.